什么是IoC?

反转控制,相对于原始的控制流相对复杂一些。 反转控制是流程反转,更多的组件创建的流程更加透明。 不需要过多的关注细节 依赖查找,依赖注入

IoC发展简介

  • IoC 的简史
    • 1983年,Richard E. Sweet 在《The Mesa Programming Environment》中提出“Hollywood Principle”(好莱坞原则)
    • 1988年,Ralph E. Johnson & Brian Foote 在《Designing Reusable Classes》中提出“Inversion of control”(控制反转)
    • 1996年,Michael Mattsson 在《Object-Oriented Frameworks, A survey of methodological issues》中将“Inversion of control”命名为 “Hollywood principle”
    • 2004年,Martin Fowler 在《Inversion of Control Containers and the Dependency Injection pattern》中提出了自己对 IoC 以及 DI 的理解
    • 2005年,Martin Fowler 在 《InversionOfControl》对 IoC 做出进一步的说明

IoC主要实现策略

IoC容器的职责

  • 通用职责
  • 依赖处理
    • 依赖查找
    • 依赖注入
  • 生命周期管理
    • 容器
    • 托管的资源(Java Beans或者其他资源)
  • 配置
    • 容器
    • 外部化配置
    • 托管的资源(Java Beans或者其他资源)

IoC容器的实现